<!DOCTYPE HTML PUBLIC "-//ORA//DTD CD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>[Chapter 26] 26.2 java.lang.reflect.Constructor (JDK 1.1)</TITLE>
<META NAME="author" CONTENT="David Flanagan">
<META NAME="date" CONTENT="Thu Jul 31 16:28:52 1997">
<META NAME="form" CONTENT="html">
<META NAME="metadata" CONTENT="dublincore.0.1">
<META NAME="objecttype" CONTENT="book part">
<META NAME="otheragent" CONTENT="gmat dbtohtml">
<META NAME="publisher" CONTENT="O'Reilly &amp; Associates, Inc.">
<META NAME="source" CONTENT="SGML">
<META NAME="subject" CONTENT="Java">
<META NAME="title" CONTENT="Java in a Nutshell">
<META HTTP-EQUIV="Content-Script-Type" CONTENT="text/javascript">
</HEAD>
<body vlink="#551a8b" alink="#ff0000" text="#000000" bgcolor="#FFFFFF" link="#0000ee">

<DIV CLASS=htmlnav>
<H1><a href='index.htm'><IMG SRC="gifs/smbanner.gif"
     ALT="Java in a Nutshell" border=0></a></H1>
<table width=515 border=0 cellpadding=0 cellspacing=0>
<tr>
<td width=172 align=left valign=top><A HREF="ch26_01.htm"><IMG SRC="gifs/txtpreva.gif" ALT="Previous" border=0></A></td>
<td width=171 align=center valign=top><B><FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1">Chapter 26<br>The java.lang.reflect Package</FONT></B></TD>
<td width=172 align=right valign=top><A HREF="ch26_03.htm"><IMG SRC="gifs/txtnexta.gif" ALT="Next" border=0></A></td>
</tr>
</table>

&nbsp;
<hr align=left width=515>
</DIV>
<DIV CLASS=sect1>
<h2 CLASS=sect1><A CLASS="TITLE" NAME="JNUT2-CH-26-SECT-2">26.2 java.lang.reflect.Constructor (JDK 1.1)</A></h2>

<DIV CLASS=sect2>
<h3 CLASS=sect2><A CLASS="TITLE" NAME="JNUT2-CH-26-SECT-2.1"></A></h3>
</DIV>

<P CLASS=para>
This class represents a constructor method of a class.
Instances of <tt CLASS=literal>Constructor</tt> are obtained by calling
<tt CLASS=literal>getConstructor()</tt> and related methods of
<tt CLASS=literal>java.lang.Class</tt>.  <tt CLASS=literal>Constructor</tt> implements the
<tt CLASS=literal>Member</tt> interface, so you can use the methods of that
interface to obtain the constructor name, modifiers, and
declaring class.  In addition, <tt CLASS=literal>getParameterTypes()</tt>
and <tt CLASS=literal>getExceptionTypes()</tt> also return important
information about the represented constructor.

<P CLASS=para>
In addition to these methods that return information about
the constructor, the <tt CLASS=literal>newInstance()</tt> method allows the
constructor to be invoked with an array of arguments in
order to create a new instance of the class that declares
the constructor.  If any of the arguments to the constructor
are of primitive types, they must be converted to their
corresponding wrapper object types in order to be passed to
<tt CLASS=literal>newInstance()</tt>.  If the constructor causes an
exception, the <tt CLASS=literal>Throwable</tt> object it throws is
wrapped within the <tt CLASS=literal>InvocationTargetException</tt> that
is thrown by <tt CLASS=literal>newInstance()</tt>.  Note that
<tt CLASS=literal>newInstance()</tt> is much more useful than the
<tt CLASS=literal>newInstance()</tt> method of <tt CLASS=literal>java.lang.Class</tt>
because it can pass arguments to the constructor.

<DIV CLASS=screen>
<P>
<PRE>
public final class <tt CLASS=literal>Constructor</tt> extends Object implements Member {
    // <tt CLASS=literal>No Constructor</tt>
    // <tt CLASS=literal>Public Instance Methods</tt>
            public boolean <tt CLASS=literal>equals</tt>(Object <tt CLASS=literal>obj</tt>);  //<tt CLASS=literal> Overrides Object</tt>
            public Class <tt CLASS=literal>getDeclaringClass</tt>();  //<tt CLASS=literal> From Member</tt>
            public Class[] <tt CLASS=literal>getExceptionTypes</tt>();
            public native int <tt CLASS=literal>getModifiers</tt>();  //<tt CLASS=literal> From Member</tt>
            public String <tt CLASS=literal>getName</tt>();  //<tt CLASS=literal> From Member</tt>
            public Class[] <tt CLASS=literal>getParameterTypes</tt>();
            public int <tt CLASS=literal>hashCode</tt>();  //<tt CLASS=literal> Overrides Object</tt>
            public native Object <tt CLASS=literal>newInstance</tt>(Object[] <tt CLASS=literal>initargs</tt>) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException;
            public String <tt CLASS=literal>toString</tt>();  //<tt CLASS=literal> Overrides Object</tt>
}
</PRE>
</DIV>

</DIV>

<DIV CLASS=sect2>
<h3 CLASS=sect2><A CLASS="TITLE" NAME="JNUT2-CH-26-SECT-2.2">Returned By:</A></h3>

<P CLASS=para>
Class.getConstructor(), 
Class.getConstructors(), 
Class.getDeclaredConstructor(), 
Class.getDeclaredConstructors()

</DIV>

</DIV>


<DIV CLASS=htmlnav>

<P>
<HR align=left width=515>
<table width=515 border=0 cellpadding=0 cellspacing=0>
<tr>
<td width=172 align=left valign=top><A HREF="ch26_01.htm"><IMG SRC="gifs/txtpreva.gif" ALT="Previous" border=0></A></td>
<td width=171 align=center valign=top><a href="index.htm"><img src='gifs/txthome.gif' border=0 alt='Home'></a></td>
<td width=172 align=right valign=top><A HREF="ch26_03.htm"><IMG SRC="gifs/txtnexta.gif" ALT="Next" border=0></A></td>
</tr>
<tr>
<td width=172 align=left valign=top>java.lang.reflect.Array (JDK 1.1)</td>
<td width=171 align=center valign=top><a href="index/idx_0.htm"><img src='gifs/index.gif' alt='Book Index' border=0></a></td>
<td width=172 align=right valign=top>java.lang.reflect.Field (JDK 1.1)</td>
</tr>
</table>
<hr align=left width=515>

<IMG SRC="gifs/smnavbar.gif" USEMAP="#map" BORDER=0> 
<MAP NAME="map"> 
<AREA SHAPE=RECT COORDS="0,0,108,15" HREF="../javanut/index.htm"
alt="Java in a Nutshell"> 
<AREA SHAPE=RECT COORDS="109,0,200,15" HREF="../langref/index.htm" 
alt="Java Language Reference"> 
<AREA SHAPE=RECT COORDS="203,0,290,15" HREF="../awt/index.htm" 
alt="Java AWT"> 
<AREA SHAPE=RECT COORDS="291,0,419,15" HREF="../fclass/index.htm" 
alt="Java Fundamental Classes"> 
<AREA SHAPE=RECT COORDS="421,0,514,15" HREF="../exp/index.htm" 
alt="Exploring Java"> 
</MAP>
</DIV>

</BODY>
</HTML>
